that's not what enums are for.
I disagree. Using enums for flags is pretty idiomatic and certainly the best way to store flags, if they are a proper fit for the constraints imposed by the type (because unfortunately C does not have enums like C++ where you can specify the underlying type, so it won't work if you need a specific bit width to match some ABI or other constraints).
The alternative is using preprocessor macros, which not only pollutes the global namespace (hence the ALL CAPS notation), but far more importantly, it's a lot harder to understand from the type what flags it actually uses. With the enum you simply look up the enum from the variable type, and it might even come with comments describing each of them and what other flags are available.
IMO the benefits far outweight the potential confusion from the "name" of it or the fact it's sequential by default (but by using preprocessor macros you have to specify the value on each flag, anyway…). I mean, it's C, not English. ;)