Stepper Motor + PulseIn (Arudino Pro Mini 328 16MHz)

I've currently have an Arudino Pro Mini controlling a Stepper Motor via a A4988 stepper motor driver without any issues. I can pulse a digital pin High/Low every 50 seconds (Edit: microseconds) for 1/16th of a step which the driver supports and it all works great.

Then I started using PulseIn to read the output of an R/C receiver (FlySky FS-R6B), and the delay caused by PulseIn ruins the ability to pulse the in fast enough to get a good rotation speed out of the stepper.

What would be the best way to proceed? I've looked at multithreading libraries, using two arduino's, but am also wondering if there is a way to just continuously pulse a pin while other things happen (like PWM, only without the WM), as I don't mind waiting the couple of ms to update the speed, as it isn't important (such as flying).

I currently have the 6-channel receiver attached to pins 10,11,12,13,A0,A1.

PulseIn() is handy but forces you into a blocking design, which makes it awkward to do anything else at the same time.

An alternative is to use a pin change interrupt on the input: when the pin goes high record the time, when it goes low subtract the previous time from the current time to get the pules duration. Store the duration in a volatile variable so that it can be shared with the code called from loop(). At the point in loop() where you would normally call pulseIn(), just use the stored duration instead.