How about using a 4 bit binary up-counter (which naturally has 16 states), decoding state 13, using the output of the decoder to asynchronously reset the counter so that it effectively passes from state 12 back to state 0?
Are you sure you want 0 to 12? That is thirteen states; not 12. 0 to 11 or 1 to 12 would be 12 states.