AES-128 or AES-256 with 18 bytes of key storage? I have only 18 bytes in which to store a (randomly generated) key.
Is it more secure to:

use AES-128 and a 16 byte key,
use AES-256 and a 18 byte key padded with 14 zero bytes to make a 32 byte key, or
use AES-256 using a KDF to turn 18 bytes into a 32 byte key, each time it is needed?
I'd argue for (3) for these reasons:

the algorithms are used within their operating assumptions;
related: AES may be insecure if the keys have a specific format;
no entropy is lost when performing the conversion to 32 bytes as compared to (1).

AES-128 is also considered secure at the moment, but it may not be if quantum computers are created that enable Grover's algorithm. So there is some reason to prefer AES-256 over AES-128. Of course, Grover will still work for 18 byte keys as well, but with the KDF you'd have at least a trickier target.
Of course you'd want a KDF that provides 256 bits of security, accept 18 byte input key material and provide key expansion. HKDF would probably be a good choice.

Note that you could argue that reason #1 &amp; #2 is rather speculative. Actually, the NIST FIPS 197 standard (AES) reads:

No weak or semi-weak keys have been identified for the AES algorithm,  and there is no restriction on key selection.

However, AES doesn't have the strongest key expansion routine, and I'd also be somewhat worried about side channel attacks. Better error on the safe side...