Lo que ves es una convención de delphi... existente desde Turbo Pascal.
Dado que en el código ASCII hay caracteres no imprimibles (todos los menores a 32), a los creadores de Pascal se les ocurrió que cuando estas programando/depurando es necesario distinguir entre esos caracteres.
Cómo ya ha mencionado Lepe, estos caracteres son utilizados a menudo cómo códigos de control (por ejemplo, por editores de texto o por impresoras)
En lugar de mostrarte "muñequitos" o cosas raras... te muestran el código ascii del caracter representado precedido por el signo de numeral.
Así, #1 es equivalente a chr(1), #9 a chr(9) (tabuldador), y cuando programas podes hacer algo cómo:
Código Delphi
[-]
Memo1.Add('Columna1'#9'Columna2');
Memo1.Add('Dato1'#9'Dato2');
Memo2.Text := 'Línea1'#13'Línea2'#13'Línea3';
#13 = CR = Carriage return
#10 = LF = Line Feed
Cómo ves.. ya son caracteres que usualmente pertenecerán a un string.
En el caso de la función que estas usando, significa que por el puerto has recibido ese caracter.
Hasta luego.