Using phase information to extract sample values
If the values are stored in a linear array indexed by $n$, read the values out 
sequentially from a different starting point in the array, that is beginning with a nonzero value of $n$, and have the read out "wrap" around the end of the array, that
is, the incrementing of the index is done modulo $N$. This gives sinusoids
with possible initial
phases $0, 2\pi/N, (2)2\pi/N, (3)2\pi/N, \ldots, (N-1)2\pi/N$ depending on the
choice of starting point of the read out.  If you want other values
for the initial phase, you will need to do some computations, and not just
a plain reading out from memory.