Fatti: A. A._, cittadin a vietnamita nata nel..., ha già soggiornato in Svizzera tra il giugno 2007 e il giugno 2009 al beneficio di un permesso di dimora concessole nell'ambito del ricongiungimento familiare con il marito e connazionale B._, residente nel nostro Paese dal 1985 e titolare di un permesso di domicilio. Sempre per vivere con il coniuge, è quindi tornata da lui nel dicembre 2010, ottenendo un permesso di dimora che le è stato rinnovato un'ultima volta fino al 24 dicembre 2016. A._ e B._ hanno due figli (nati nel settembre 2002 e nell'agosto 2007) che dispongono, come il padre, di un permesso di domicilio. B. Da quando è di nuovo in Svizzera, A._ percepisce l'assistenza pubblica insieme alla famiglia. Per questa ragione - il 31 luglio 2014, il 23 aprile 2015, e il 21 gennaio 2016 - la Sezione della popolazione del Dipartimento delle istituzioni del Canton Ticino l'ha ammonita, con l'avvertenza che se fosse rimasta a carico dello Stato anche in futuro o in caso di violazione dell'ordine pubblico, sarebbe stata presa in esame la possibilità di emettere nei suoi confronti una decisione di revoca del permesso di soggiorno. C. Dopo avere constatato che continuava a dipendere dall'aiuto sociale, con decisione del 22 agosto 2016 le autorità migratorie ticinesi hanno revocato a A._ il permesso di dimora di cui disponeva, assegnandole un termine per lasciare il Paese. Nel seguito, questo provvedimento è stato confermato sia dal Consiglio di Stato (13 dicembre 2017) che dal Tribunale amministrativo ticinese (31 ottobre 2019). D. Il 5 dicembre 2019 A._ ha impugnato il giudizio della Corte cantonale con ricorso in materia di diritto pubblico al Tribunale federale. In tale contesto, chiede che il permesso di dimora le sia rinnovato. In parallelo, domanda l'esenzione dal versamento di un anticipo a copertura delle spese di procedura. Chiamato ad esprimersi, il Tribunale amministrativo si è riconfermato nelle conclusioni della propria sentenza. Ad essa ha fatto in sostanza rinvio anche la Sezione della popolazione. Il Consiglio di Stato si è invece rimesso al giudizio del Tribunale federale. Con decreto del 6 dicembre 2019 è stato concesso l'effetto sospensivo al gravame.