Waiting on a Switch to Stop Moving

I assume you can read the inputs and work out somehow which position the switch is in. Remember that when the switch is being moved between positions, there may not be anything connected.

In that case you just need to work out which position the switch is in, and wait for that number to settle (using the debounce algorithm you outlined). But you only need to debounce one value (the switch position) not the state of all the inputs.

Do you really need a separate input pin per switch position? If the switch is not connected to anything else then you could connect each position to a different resistance value and use a single analog pin as a voltage divider to determine the resistance and hence which position the switch is in.