When you say it has spark, did you check all 4 ignition wires to ensure there is spark on all 4 of them?
You could check to see if the ECU threw any codes while the engine was sputtering. That information, if there, would help a lot.
How many miles has the engine run since the last timing belt change? May be possible the timing belt jumped a few teeth. You can inspect that. You can also do a cylinder compression pressure check to make sure it is at the proper level (too low evenly across all 4 cylinders would be an indication of a timing belt that jumped a few teeth).
There are many other possibilities, but I would start with these.
You could check to see if the ECU threw any codes while the engine was sputtering. That information, if there, would help a lot.
How many miles has the engine run since the last timing belt change? May be possible the timing belt jumped a few teeth. You can inspect that. You can also do a cylinder compression pressure check to make sure it is at the proper level (too low evenly across all 4 cylinders would be an indication of a timing belt that jumped a few teeth).
There are many other possibilities, but I would start with these.