Reading input from potentiometer

Getting the data to display is easy. analogRead returns a 10-bit value,
000 to 3FF.
Divide that by 4:

byte displayValue = (analogRead(5)>>2; // read pot on A5
result is 00 to FF
display the left half on one display, the right half on a second display.

rightDigit = displayValue & 0x0F; // data is now in bit positions 0 to 3
leftDigit =( displayValue & 0xF0)>>4; // move  bits into bit positions 0 to 3

Next, setup 2 arrays for the pins you drive the displays with:
digit1pinsArray[] = {2,3,4,5,6,7,8,}; // 2 = a, 3 = b, 4 = c, 5 = d, 6 = e, 7 = f, 8 = g - see  below
digit2pinsArray[] = {9,10,11,12,13,14,15}; // A0,1,2,3 are 14,15,16,17

don't forget current limit resistors

Now, create a font map for digits 0-9,A,b,c,d,E,F
byte fontArray [] = {
B00111111, // 0  1 = segment on
B00000110, // 1  bit 0 = segment A, 1 = b, 2 = c, 3 = d, 4 = e, 5 = f, 6 = g, 7 = not used or decimal point
B01011011, // 2                 a
B01001111, // 3         f              b
B00100110, // 4                g
:                                   e              c
:                                          d 
: etc for rest of digits
B01110001, // F
}
 
Now to show a number, make the link from fontArray[] to pinsArray[]
There's probably some fancier software loop way to do this, I'm just going to use some simple bit masking:

// bit 0, mask for segment A
if ((fontArray[leftDigit] & B00000001) == 1){
digitalWrite(digit1pinsArray[0], HIGH); // HIGH if driving LED Anodes. Use LOW if sinking current from LED Cathodes
}
else {
digitalWrite(digit1pinsArray[0]), LOW); // LOW if driving LED Anodes. Use HIGH if sinking current from LED Cathodes
}

// bit 1, mask for segment B
if ((fontArray[leftDigit] & B00000010) == 1){
digitalWrite(digit1pinsArray[1], HIGH);
}
else {
digitalWrite(digit1pinsArray[1]), LOW);
}

// bit 2, mask for segment C
if ((fontArray[leftDigit] & B00000100) == 1){
digitalWrite(digit1pinsArray[2], HIGH);
}
else {
digitalWrite(digit1pinsArray[2]), LOW);
}

// bit 3, mask for segment D
if ((fontArray[leftDigit] & B00001000) == 1){
digitalWrite(digit1pinsArray[3], HIGH);
}
else {
digitalWrite(digit1pinsArray[3]), LOW);
}

// bit 4, mask for segment E
if ((fontArray[leftDigit] & B00010000) == 1){
digitalWrite(digit1pinsArray[4], HIGH);
}
else {
digitalWrite(digit1pinsArray[4]), LOW);
}

// bit 5, mask for segment F
if ((fontArray[leftDigit] & B00100000) == 1){
digitalWrite(digit1pinsArray[5], HIGH);
}
else {
digitalWrite(digit1pinsArray[5]), LOW);
}

// bit 6, mask for segment G
if ((fontArray[leftDigit] & B0100000) == 1){
digitalWrite(digit1pinsArray[6], HIGH);
}
else {
digitalWrite(digit1pinsArray[6]), LOW);
}

Repeat for digit2pinsArray[] and rightDigit

Now put all the pieces together!