A common way of doing this type of effect is by making use of bitmap draw functions that allow offsets into the images: for a downward scroll effect, simply do two copies from your source starfield bitmap into the screen buffer: first from source (0, 0) to (width, height-Yoffset) to screen (0, Yoffset) to (width, height). Secondly, take from source (0, height-Yoffset) to (width, height) to screen (0, 0) to (width, Yoffset). By changing Yoffset each frame you can control the scrolling rate, just make sure to reset Yoffset when it reaches (height) back to 0. Reversing the direction is the same, just invert Yoffset changes. The same method can be applied to X as well as Y, even at the same time, to give some very powerful full screen scrolling effects.
We use this method in our iSGPU core for scrolling wallpapers and other background effects. The performance is usually very high, since you're dealing with 2 block transfers of linear memory. Since the method uses bitmaps in memory, you can have a very nice images scrolling rather than just changing pixels. With only a few changes to the parameters above you can also use bitmaps larger than the screen for giving a "larger world" effect.
Good Luck!
Stuart,
Chief Architect /You.i Labs