How to monitor for fast changes?

50 millisecs isn't fast as far as the Arduino is concerned.

Use the technque in the Blink Without Delay example sketch to use millis() to time things so you take a reading every 50msecs. Save the value in a variable. Have another variable that holds the previous reading. Compare the new with the old. Replace the old with the new. Repeat as needed.

...R