Is there a better way to extract a single value instead of a sequence?
Why not use just what you posted? Like this:

;use better names
(defn sel-adj-idx-fixed [reading] (first (reverse (sel-adj-idx reading))))

for is used to generate sequences. Try loop for more general looping needs.
You should not hard code the length of a data structure. Each time you update read-levels you will need to update usage-vec-len. Use count instead. It is supposed to be fast for vectors.
A suggestion follows, Not a clojure programmer, so ignore the style:

(defn bin-idx [reading]
   "......"
   (second (first (drop-while #(&gt; reading (first %)) 
                              (map vector 
                                   (reverse read-levels) 
                                   (range))))))