Code 300 is Random/multiple cylinder misfire. With the engine running pull a spark plug wire and be careful not to pull on the wire but on the boot connected to the spark plug. Now listen to see if you hear the engine change RPM and if it doesn't you have a problem with that cylinder. Put that wire back on and do each wire one at a time.
Sounds like air/gas ratio out of sync. I first need to know if you've had a tuneup.
Help you further when you do.