A resposta curta à sua pergunta é "não".
No sentido mais estrito, no nível do banco de dados, as instruções preparadas permitem apenas que os parâmetros sejam vinculados a bits de "valores" da instrução SQL.
Uma maneira de pensar nisso é "coisas que podem ser substituídas na execução da instrução em tempo de execução sem alterar seu significado". O(s) nome(s) da tabela não é um desses valores de tempo de execução, pois determina a validade da própria instrução SQL (ou seja, quais nomes de coluna são válidos) e alterá-la no tempo de execução potencialmente alteraria se a instrução SQL era válida.
Em um nível um pouco mais alto, mesmo em interfaces de banco de dados que emulam a substituição de parâmetros de instrução preparada em vez de enviar instruções preparadas para o banco de dados, como PDO, o que poderia permitir que você use um espaço reservado em qualquer lugar (já que o espaço reservado é substituído antes de ser enviado para o banco de dados nesses sistemas), o valor do marcador de posição da tabela seria uma string e incluído como tal dentro do SQL enviado ao banco de dados, então
SELECT * FROM ?
com mytable
pois o parâmetro acabaria enviando SELECT * FROM 'mytable'
para o banco de dados, que é SQL inválido. Sua melhor aposta é apenas continuar com
SELECT * FROM {$mytable}
mas você absolutamente deve ter uma lista branca de tabelas que você verifica primeiro se
$mytable
está vindo da entrada do usuário.