Faz um bom tempo que não uso React, mas a finalidade do useContext não é justamente (entre outras coisas) reenderizar componentes quando houver mudança desse estado global? Ao menos é o que dá para entender da documentação
Não seria o caso de usar um reducer (useReducer) e ter um controle mais fino das mudanças de estado?
Será que está usando o useContext da forma correta?
De qualquer forma, existem várias técnicas de se evitar as renderizações, aqui tem algumas dicas. Mas você encontra facilmente vários artigos e vídeos que tratam sobre isso.