Giving device variable input/setting capabilities
You could use a potentiometer (pot) for this, but they are typically continuous in their output where it sounds like what you want is discrete values. To use a pot you would need to use it in a voltage divider and set bins (voltage ranges) for the various values you want to set to, and read in the output of the divider with an ADC. To set this you would adjust the pot until value of the output falls in to one of the bins. This person made a pretty neat feedback system for this idea. You can also buy pots with detents, detents are mechanically set positions through the turn.

Alternatively you can use a rotary encoder, they're those knobs that spin forever in either direction and "click" in to set positions along the way, also by use of a detent. There is a wide variation in encoders. I've recently used these ones. Basically you can continue turning these around and around and they send pulses to your microcontroller letting it know which way they are turning (this is a slide set explaining how they work). By counting these turns in the respective directions your microcontroller can set values. For instance turning right increments the value while left decrements. This is nice when you want to use one knob to set variable ranges, a solution you can drop in to most projects that need a knob.