Dipende dalla classe che usi perché potrebbe darsi che sia capce di modificare localmente la geometrisa di una pagina per allungala un poco.
Per fare qualcosa di molto artigianale e generalmente sconsigialbile (anzi fortemente sconsigiato potresti fare qualcosa del genere`\clerapage
\begingroup
\advance \textheight \baselineskip
\tableofcontents
\clearpage
\endgroup`
Per fare una cosa più elegante si potrebbe usare il comando \enlargethispage, ma questo, con il suo argomento, dovrebbe entrare dentro al definizione di \tableofcontents, ma potrebbe allungare solo l’ultima pagina dell’indice, che sarebbe probabilmente più corretto. Ma non è semplice rattoppare \tableofcontents per mettere quel comando col suo argomento al posto giusto.
Direi che la soluzione che ti ho proposto sia un rattoppo accettabile, il fatto di aver racchiuso tutto il codice dentro un gruppo consente alle impostazioni locali di restare locali; è per questo che non ho usato il comando \addtolength, per abitudine, visto che i comandi di alto livello di LaTeX hanno l’abitudine di essere globali; in pratica solo \addtocounter è un comando globale, mentre \addtolength non lo è.