Wenn das mit Pulsein Probleme macht, schreib doch die Auswerteroutine selber.
Am Schönsten geht das mit dem Input Capture Interrupt des Timers 1.
Wenn da am ICP Pin ein Flankenwechsel ( programmierbar ) stattfindet wird der aktuelle TCNT Stand in das Input Capture Register geschrieben.
Den holst Du Dir dann in der Interruptroutine ab, ziehst den vorher ermittelten Wert ab und legst ihn in einem kleinen ARRAY ab.
Da Du für das Array ohnehin einen Pointer brauchst, kannst Du den gleich als Marker für neue Impulse verwenden.
Einlesezeiger != Auslesezeiger = neuer Impuls eingetroffen.

Aus dem Array kannst Du dann gleich deine Mittelwerte in der Hauptroutine rausholen.

Eine Sache musst Du dabei beachten, wenn sehr wenige Impulse kommen kann der Timer überlaufen - das musst Du programmtechnisch abfangen.