Timing Pulses

I'm in the process of building a wheel speed sensor using neodymium magnets and this hall effect sensor

The magnets on the wheel alternate in polarity (i.e. as the wheel spins, alternating poles will pass by the sensor, creating a square wave). Here's my problem: the analog readings from the sensor are either 2-3 (0V), or 100 (0.5V). It won't go any higher, and the pulseIn() function won't work unless the voltage changes from 0 to 3 or vice versa.

Any ideas for how I can make this work? I'm really new to Arduino, so maybe there is a function or some kind of configurable settings that I'm overlooking. I'm also considering using the output from the sensor as an input to an opamp, but I'm not sure if that will work since the minimum output isn't quite 0.

Take a look at Diagram 13.1 in the data sheet, and read the linked Bildr tutorial section on "Hooking it up". You should be using a 10K pull up resistor to your 5v Vdd. You will then have a 0v and 5v signal. Read the signal out as digital rather than analog.