I took apart a cordless drill speed control, which uses the traces-and-resistors method. And, yeah, it's noticeably lumpy (with less than 8 divisions in it, I think it was?).
The traces are cut on a bias (about a 20 degree slant), while the sliding contact is a bunch of spring contacts in a row. So a few (1-3?) traces will be shorted together at any given time, which is both redundant, and can potentially ~double the number of steps (because of parallel combinations of steps acting as interpolation), if the width of the contact is just right.
You could do better with fewer steps but more rows; a Gray code perhaps might give okay results, but would have to be decoded, and now you have a whole mess of things to deal with (reliable contact and debouncing on each bit position, ensuring the contacts track exactly parallel, an MDAC or digital pot for output, etc.).
There may be a decoding, using a minimal number of discrete resistors and contact pads, which yields maximal number of steps, but it would be a lot of thinking to come up with it (or, likely it's been done already -- but you have to find it; it may well be equivalent to a long-since solved math-hobby sort of problem, but who knows?
).
So yeah, it's not likely to be a viable method, for any more than coarse control.
Tim