When using on change microflows, you can only pass the whole object. In Mendix it is not possible to determine which attribute of the object has changed.
The workarounds that I can think of are:
There are a couple of Java actions in the Community Commons module that might help you: GetOriginalValueAsString and memberHasChanged. This way you can check whether a single attribute has changed. You can also do this by retrieving the existing record from the database in your microflow, and comparing the values from the original object to the one passed to your microflow (which is the unsaved updated version). This will work OK if you are only checking a small number of attributes, but would become unwieldy if there are many to check, or if you change more than one attribute between commits.
Having separate OnChange microflows would be easier to maintain and more scalable. Remember, that if much of the microflow actions are identical, you can call a sub-microflow containing these actions.
One other possibility using this approach is to have separate on-change microflows for each attribute, but the microflow called simply sets a string variable with the hard-coded attribute name, then calls your generic on-change microflow passing the string value as a parameter so you can use it in your logic.