For a problem like this you typically use an optical incremental encoder. Depending on the type it gives a series of pulses per revolution, so your resolution will depend on this number. It also gives you information on the rotation direction. You can find speed by timing the period of time between pulses.
See also this answer for more information on how incremental and absolute encoders work.
If you can't find a suitable encoder, and your motor runs smoothly, it may be sufficient to have just one pulse per revolution. The current position can then be derived from the time since the last pulse divided by the time between pulses (= rotation period). Just like the optical encoder you want a non-contact solution. Optical is one possibility. Use a reflective sensor (like Vishay CNY70) to detect a small reflective area on an otherwise matte disc (or vice versa). A magnetic solution is also possible, and often used in dirty environments where the optical sensor won't work. A small magnet on the motor's shaft will cause a Hall effect sensor (like Infineon TLE4913) to give a pulse each time it passes.
You would think the gyro would be ideal because it gives you angular velocity. To find rotation, however, you have to integrate angular velocity over time, and it's not always easy to maintain accuracy because you also integrate error which will become larger and larger, unless there's a way to recalibrate every rotation.
Like I commented to Mike, when using an accelerometer and a motor which isn't mounted vertically the accelerometer will respond to the earth gravitation and superimpose this as a sine wave to the reading from the centrifugal acceleration. This has to be filtered out, but can also be used to count rotations directly: you get 1 sine cycle per revolution.
important attention point:
Both a gyro and an accelerometer would have to be mounted on the shaft, and you will have to deal with the problem of wiring power and readings to a fixed position.
As Rocketmagnet mentioned your error is going to grow with time. The error model typically used in inertial navigation is an exponential growth.
To minimize this you must provide external updates. The mechanism typically employed is a Kalman Filter. The inertial sensors provide very good high rate updates. Your external source provides less accurate but long term stable updates at a lower rate (typically something like GPS). These two combine to give you a good combined solution. Not all systems use GPS as the update source. For instance, the IR imager on the front of the Nintendo Wii remote provides the source of these updates.
I'll give you an example of the cost is no factor side of things. I build systems for aerial surveying that utilize inertial systems that cost 100,000+ Euro. With these systems and high end geodetic GPS receivers I can pin-point the location of the IMU to a 2" volume all day long when GPS coverage is good. In the absence of GPS updates (urban canyons, tunnels, etc.) after about 60 seconds we have an error margin of about 10cm. Systems with this level of performance are typically ITAR controlled goods as they are weapons grade devices.
Lower quality MEMS inertial systems are used all day long in less demanding applications yielding meter sub-meter level position and attitude. These lower quality systems still employ the same Kalman Filtering mechanism. The real downside to these lower cost units is that your drift error will grow at a much faster rate.
Edit:
To answer your question as to what is important to look for in an IMU. There are a couple of things you want to look at. The first is temperature stability. Some MEMS sensors are going to have outputs that vary by as much as 10% over temperature range. These may not matter if you are at a constant temperature during operation.
The next thing to consider is the gyro noise spectral density. Obviously the lower the noise amount the better. The following link provides documentation about how to get from the spectral noise density to the drift (in degrees per unit time). http://www.xbow.com/pdf/AngleRandomWalkAppNote.pdf
For acceleration you want to look at sensitivity, and bias in addition to the noise. The noise level will give you an idea of how quickly you're going to integrate error.
Best Answer
Doesn't matter a whole lot. However, in consideration of question 2, you might consider getting one "6 DOF" sensor (3 gyros, 3 accelerometers). Integrated sensors probably have better sensor-to-sensor alignment than you can achieve with individual assembly.
Yes, but it isn't trivial to get it right, especially in highly dynamic situations. Look up terms such as "coning" and "sculling".
Sensitivity is more important than range. Remember, if the system is working correctly, the platform isn't moving at all. You want to catch any deviations (errors) as quickly and accurately as possible. If you had perfectly frictionless gimbals, you wouldn't need an active system at all — the mass of the platform would keep it oriented in space.