It could be a vacuum leak. If you spray small amounts of starter fluid at certain spots and the engine speeds up, you have found the leak.
Check out the idle air valve.
Or it could be the throttle valve sensor sending faulty messages.
Your EGR system could be obstructed. Unplug it and see if the engine improves.
A faulty MAP sensor can have the same consequences.
Bad plugs, wires, cap, and rotor?
Plugged injectors can really cause problems. You can buy reconditioned ones for 1/4 the cost of new ones.
ETC., etc.
I have been going through the same sh** myself.