Unmetered air can enter the engine through a vacuum leak, a dirty airflow sensor that is not reading airflow accurately, an EGR valve is not closing and is leaking exhaust into the intake manifold, an EGR valve that is allowing too much flow.
If it is hard to pinpoint take some brake cleaner or starting fluid around the intake manifold and vacuum lines and see if the engine stumbles or if the idle is affected. Be extremely careful when doing this!
Also, your throttle body may be carboned up and need to be cleaned! This can cause all sorts of idle and hesitation problems. This is caused by the throttle plate not seating properly. The First thing i would do is clean out the throttle body with some throttle plate and intake cleaner and a small brush. Another common cause would be the Idle Air Control motor. This is very common on older cars. The IAC motor gets lazy and cant keep up with the fast idle changes. Also when the IAC motor is out, I rec to check the passages for carbon build up. If they are plugged they need to be cleaned out.
Check for the following conditions:
Poor connection at PCM or IAC motor. Inspect harness connectors for backed out terminals, improper mating, broken locks, improperly formed or damaged terminals, and poor terminal to wire connection.
Damaged harness. Inspect the wiring harness for damage.
Restricted air intake system. Check for a possible collapsed air intake duct, restricted air filter element, or foreign objects blocking the air intake system.
Throttle body. Check for objects blocking the IAC passage or throttle bore, excessive deposits in the IAC passage and on the IAC pintle, and excessive deposits in the throttle bore and on the throttle plate. Check for a sticking throttle plate. Also inspect the IAC passage for deposits or objects which will not allow the IAC pintle to fully extend.
Vacuum leak. Check for a condition that causes a vacuum leak, such as disconnected or damaged hoses, leaks at EGR valve and EGR pipe to intake manifold, leaks at throttle body, faulty or incorrectly installed PCV valve, leaks at intake manifold brake booster hose disconnected, oil filler cap, oil level indicator loose or missing, etc..
Possible Causes
Check for air leaks in the Air Induction system (e.g., in the intake manifold)
Check for air leaks in the PCV system and in its related hoses and/or valve
Idle air inlet passage or throttle bore is dirty or full of deposits
IAC valve has failed
MAF sensor is dirty, "skewed" or installed improperly
Throttle plate, throttle shaft or linkage is damaged or sticking
TP sensor is out-of-range or "skewed" high
--------------------
Problem, Erratic Idle
Causes:
1. Vacuum Leaks.
2. Leaking EGR valve or Plugged PCV valve.
3. Air filter clogged.
4. Leaking Head Gasket. (Perform a cylinder compression check)
5. Worn timing chain or belt.
6. Camshaft lobes worn.
7. Valves burned or otherwise leaking.
8. Ignition system not operating properly.
9. Dirty or clogged injectors.
10. Faulty idle control system.
11. Faulty emissions or engine control systems.
Problem, Excessively High Idle Speed
Causes:
1. Sticking throttle linkage
2. Idle speed incorrect
3. Faulty idle control system
4. Faulty emissions or engine control system.
Causes:
1. Vacuum Leaks.
2. Leaking EGR valve or Plugged PCV valve.
3. Air filter clogged.
4. Leaking Head Gasket. (Perform a cylinder compression check)
5. Worn timing chain or belt.
6. Camshaft lobes worn.
7. Valves burned or otherwise leaking.
8. Ignition system not operating properly.
9. Dirty or clogged injectors.
10. Faulty idle control system.
11. Faulty emissions or engine control systems.
Problem, Excessively High Idle Speed
Causes:
1. Sticking throttle linkage
2. Idle speed incorrect
3. Faulty idle control system
4. Faulty emissions or engine control system.