Optical flow sensors (such as those used in computer mouses) are good for this situation. Most will give output in terms of translation.
Alternatively, but the chips that offer image outputyou can just use a basic camera and run some optical flow algorithms on the data. This will give you the same basic information. It might be adaptedeasier when doing it this way, to adapt an algorithm that will offer some rotational sensingmotion as well as translation.
Some optical flow ICs do have the ability to give you the image data (eg the ADNS-3080), which you can further analyse for rotational information.