I'm using a potentiometer to select a pair and two buttons to select the color in each pair.
If the top of the linear pot is +5 and the bottom is Gnd, then the wiper will vary between +5 and 0.
The ADC (a 10-bit #) will vary from 1023 to 0.
There are 9 squares in "naught and crosses", so simply use map() to transform 1023-0 to 1-9.
Then use a switch/case statement to manage the selection.
Personally... If you use RGB LEDs, then you could use Red for player #1, green for #2, and turning the pot would illuminate BLUE as a selection LED which would only stop on a non-selected (available) cell; that is, on play 1 of the game, any 9 blue LEDs could be illuminated, but once Red or Green are lit, Blue in that cell will not illuminate, so button selection would not work... Forcing a bypass until an available cell, blue illuminated, is selected.... Player would push their button, Red or Blue.
More color ---> more fun! ---> higher grade?
Ray