The next thing that I would check are the plug wires, spark plugs and coil pack. Do you have a Check Engine Light on ( the yellow little engine in the right side of the instrument cluster ). If you do, then you can retrieve the code or codes which will really help you figure out what the problem is. When was your last tune up and fuel filter replacement?
If the Check engine Light comes on and off, you definitely have a code stored, since your car is OBD-II. The first thing I would do is have the power train computer scanned for codes. Tell me what that code number is, then I can help you.