Is this a circular step sequence?
JavaScript (ES7),  99 79 74  72 bytes
Takes input as (n)(b). Returns a Boolean value.

n=&gt;g=([d,...b],x=0,m=2**n-2)=&gt;d?[x+d,x-d+n].some(y=&gt;g(b,y%=n,m^1&lt;&lt;y)):!m

Try it online!
How?
Instead of using an array for \$a_i\$, we use a bitmask \$m\$ initialized to \$2^n-2\$ and a bit pointer \$x\$ initialized to \$0\$ (i.e. pointing to the least significant bit).
For instance: for \$n=4\$, we start with \$m=4^2-2=14=1110_2\$. Because the LSB is our starting position, it is cleared right away to mark it as visited.
The main part of the code is a recursive search in a binary tree: for each \$b_i\$, we move the bit pointer to either \$x+b_i\$ or \$x-b_i\$ (wrapping around modulo \$n\$) and toggle the bit at the new position in \$m\$.
We have \$m=0\$ on a leaf node iff all positions have been reached exactly once.