Sensing Engine RPM with 4N25 Optocoupler - Noise!

Hi all,

I'm building a LED tachometer using a Nano and a 4N25 Optocoupler to sense pulses off of one of my cars ignition coils. I'm reading the RPM but it is coming in really noisy! I've got the circuit set up as it is here on the 4th image and I'm running the output through the first interrupt pin and averaging over 10 pulses but still getting a lot of noise, too much to change the LED's reliably.

volatile bool newPulse = false;
volatile unsigned long lastPulseTime;
volatile unsigned long lastPulseInterval = 0;
volatile unsigned long pulseCount = 0;
unsigned long rpm = 0;

void setup() {
  Serial.begin(9600);
  attachInterrupt(0, rpmtrigger, FALLING);
}

void loop()
{
 unsigned long rpm;
 if (pulseCount > 9)
 {
    unsigned long pulseAverage = lastPulseInterval/(pulseCount);
    rpm = 60000000UL/pulseAverage;
    pulseCount = 0;
    lastPulseInterval = 0;
    newPulse = false;
 } 
 else
 {
   rpm = 0;
 }
 Serial.print("RPM = ");
 Serial.print(rpm);
 Serial.println();
 delay(200);
}

void rpmtrigger()
{
 unsigned long now = micros();
 unsigned long pulseInterval = now - lastPulseTime;
 if (pulseInterval > 1000UL)
 {
    lastPulseTime = now;
    lastPulseInterval += pulseInterval;
    pulseCount++;
    newPulse = true;
 }
}

Any suggestions?