No estoy muy familiarizado con Arduino, pero veámoslo desde la perspectiva de la LCD.
Prácticamente todos los LCD de caracteres populares utilizan HD44780 controlador estos días (eso es lo que LiquidCrystal que soporta la biblioteca). Este controlador no soporta UTF-8 directamente, cada carácter es representado por un solo byte.
Por lo tanto, es necesario convertir manualmente los caracteres UTF-8 a 8 bits. El controlador tiene un generador de caracteres integrado con 208 caracteres 5x8 y 32 caracteres 5x10, además de hasta 8 caracteres definidos por el usuario (véase createChar ). Necesita asignar cada carácter de entrada a uno de los caracteres predefinidos/personalizados - obviamente sólo puede mostrar un subconjunto de caracteres UTF8, necesita decidir qué caracteres quiere/puede mostrar.
La conversión en sí misma debería ser bastante sencilla - sólo tienes que iterar sobre la cadena UTF8, mapeando cada carácter a un único byte. Lo más probable es que quieras usar una tabla de búsqueda para mantenerlo simple. Hágame saber si esto necesita más explicación.