For a 1D system like a nanoribbon it's very simple: use (1,1,many), where "many" is probably 50-100 or so. Alternatively a lower number can be used as long as it's a multiple of 3, like 27 or 30, but a safe number like 60 should not be much slower.
Graphite/graphene and derived structures can be a bit tricky, if you consider e.g. a whole sheet, since the electron density is around the K point, so you have to hit that by using preferably 3N points where N is integer.
In general the rule is that you start small and then increase until your results don't change a lot. You do not, however, have to do this for the "end result", like run the whole geometry optimization over and over for more and more k-points. You check some characteristic feature of the system, like the electron density, total energy, band gap, or so, for a given structure (fixed geometry which is at least reasonably close to the expected one), and then use the so-determined k-point sampling for the main calculation.