Use a rotary encoder with quadrature pulses as an input device. This library decodes the signals from a rotary encoder and translates them into a counter position. The library comes with some samples that show how to use the library with and without interrupts.