Como percorrer dados obtidos da serial?

Experimenta isto:

const int N = 10;
char inMsg[N+1];

void setup()
{
  Serial.begin(9600);
  inMsg[N] = 0;
}

void loop()
{
  if(Serial.available() >= 10)
  {
    int i = 0;
    while(( i < 10))
    {
      inMsg[i++] = Serial.read();
      
    }
    
    // teste: imprime array para verificar o conteudo
    imprimeMsg();
  }
}

void imprimeMsg(){
    Serial.println(inMsg);
    
}

A tua funcão imprime mensagem está errada... certamente que se correres isto várias vezes vais obter resultados diferentes...

O problema ocorre quando fazes isto:

i < (sizeof(inMsg) / sizeof(char))

sizeof(inMsg) é igual a 10... sizeof(char) é sempre igual a 1...

Quando recebes algo na porta série, o if passa a ser válido... mas se só recebeste um valor, para que vais tentar imprimir os valores todos?