Obtener cifra de dos dígitos de un teclado matricial

Cuando digitas un número qué ocurre?

 char key = keypad.getKey();      // Captura una tecla del teclado.
   if (key) Serial.println(key); 

Esto lo entiendes?
Ahi dice... si se presionó algo imprímelo.
key cambia de 0 o sea nada presionado y por lo tanto false en el if a algo que corresponde al valor de la table con la que has diseñado tu teclado matricial.
Ahora presionas 1 fila 0 columa 0
ese 1 vale unidad si no presionas otro número
si presionas otro número ya deberia ser decena, o sea.. tenerlo almacenado, multiplicarlo por 10 y sumarlo al nuevo numero digitado.
y asi vas multiplicando x 10 la suma de dos numeros hasta cuando? Hasta que una tecla que puede ser por ejemplo # indique que se terminó el ingreso del número.
Por lo tanto tienes una secuencia repetitiva que empieza con una variable en 0, que lleva la suma
A ese valor lo multiplicas por 10 pero como es 0 seguira en 0, y le sumas lo ingresado.
Resultado para el primer digito tienes la unidad.
supongamos presionas 1 y valor que es tu variable = 0.
1er digito: Vas a presionar 1 x ejemplo

// en globales defino
int valor = 0;
int tecla;

// en tu loop
tecla = key - '0';                  // convierto a key en número entero
valor = valor*10+tecla;  

Entonces valor = 1
2do digito : Presionas 4 x ejemplo
valor = 1*10+4 = 10+4 = 14
ya tienes dos números guardados.
Eso se mantiene hasta que decidas terminarlo con un

if (key =='#') {
   // presentas el valor o haces lo que gustes con valor 
    // pero tmb es el momento para ponerlo a 0 y dejarlo
    // listo para próximo ingreso.
}