Is it possible to truncate AES output and keep uniqueness (no decryption needed)?
For the parameters you gave, the birthday paradox will kick in and you will get collisions, since the set of integers you want to process is much larger than $\sqrt{2^{30}}$.

A very simple countermeasure would be for input $x_k$ to use bits $(y_{k,1}\ldots,y_{k,30})$ of the AES output 
$$
(y_{k,1}\ldots,y_{k,128}):=AES_K(x_k)
$$
(for a fixed randomly chosen secret key $K$, you can use some fixed padding on $x$ if you wish).

Say you you have processed $x_1,x_2,\ldots,x_m$ with no collision and placed the outputs 
$$
(y_{1,1}\ldots,y_{1,30}),\ldots, (y_{m,1}\ldots,y_{m,30}),
$$
in a sorted list. Say $(y_{m+1,1}\ldots,y_{m+1,30})$
collides with a previously chosen output vector. Then keep checking
$$
(y_{m+1,j},\ldots,y_{m+1,j+29}),\quad j\geq 2,
$$
until you get a 30 bit pattern that doesn't collide with that vector. Due to the good randomness properties of AES this will succeed in a few iterations after each collision, with high probability. 

You can then store the cordinate index  $j_x$  used to generate this vector together  with $x_{m+1}$ if reproducibility is required.