Quando me deparei com essa situação e fiz o seguinte:
1 - Defini escalas fixas para o projeto. projeto > propriedade > configurações de exibição. Aqui defina as escalas prováveis para as diversas imagens do atlas.
2 - Caixa Propriedade do item >> controlado por Atlas >> use a opção: escala predefinida (melhor ajuste). Aqui o qgis buscará a escala predefinida na etapa anterior que melhor se ajusta ao layout em avaliação.
3 - No Atlas, na propriedade das grades, use a calculadora de campo para definir os valores de X e Y (distância da grade).
Use a função CASE WHEN. Neste caso, quando a escala for tal, o X sera 100m por, exemplo. Faça várias opções, conforme as suas possibilidades. Faça o mesmo para a distancia Y.
Pronto. Com essa configuração, o atlas adequará a view à escala mais adequada e, em função dessa escala, definirá a distância (x,y) da grade.
Essa mesma ideia deve ser usada para adequar a barra de escala gráfica