The beauty of PolyPaint is that you can add or change your UV’s at any time without losing any of the work that you’ve done. At any time go to level 1 and add UV’s to your model, change the UV’s or import new UV’s from another application.
To get good quality transfer from PolyPaint to texture, your model should have about as many polygons as your texture has usable pixels. (Number of subdivision levels is irrelevant because a model that starts out with 6 polys at level 1 will have a radically different polygon count at level 7 than a model that started with 1,000 polys! Just look at the number of polygons at your highest level and use that to determine the size of your texture.)
A 1024x1024 texture has about 1 million pixels.
A 2048x2048 texture has about 4 million pixels.
A 4096x4096 texture has about 16 million pixels.
A 8192x8192 texture has about 64 million pixels.
UV mapping tends to waste about 25% of the available texture space, so take those values above and knock 25% off to get the number of usable pixels you’ll usually have at each texture size.
So to determine the proper size texture for your model, look at the number of polys at the highest subdivision level and then find the texture size that’s closest to it in terms of number of pixels. Thus, a model with 12 million polys should use a 4K texture. Using a 1K or 2K texture would lose a lot of your painted detail while an 8K texture holds WAY more data than your model has and so ZBrush would have to create a lot of interpolated values in order to fill in the extra data.
Hope that helps!