How can I prevent a symbol from being evaluated?

If I have an association A with a key of X, then keys [A} yields {…, X …}, where X is not evaluated. Now suppose I assign a value to X, say simplicity half 2, then A [X], evaluated as A [2] instead of A [X] and returns an error due to a missing key 2. How can I prevent X from being evaluated, so I can use it as a symbolic value can treat?