I built a tube internet radio with speech output of station names and switching stations with the AM dial. A small USB mouse picks up the rotation, a python script speaks the station name and passes the stream URL to gmediarenderer. Sound via USB soundcard and Phono/Aux input. Inspired by http://blog.scphillips.com/posts/2014/05/playing-music-on-a-....
Measure, how many delta ticks a revolution gives you and adjust the delta to trigger the next station to feel natural when turning the dial. I bent a simple bracket from some scrap sheet metal to hold the mouse in place just above the dial. The black and white threads of the cord wrapped around the dial helps the optical sensor, so try to position the optics above that.
Similar project: https://2dom.github.io/the-radio/ I did not bother to remove parts of the mechanics to make the dial endless, however. Dialling through so many stations that you need that is tedious anyways, so I felt I don't need it.